package br.unesp.rc.locadora.beans;

import javax.persistence.Column;
import javax.persistence.Id;
import javax.persistence.GeneratedValue;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Inheritance;
import javax.persistence.InheritanceType;
import javax.persistence.OneToOne;
import javax.persistence.CascadeType;
import java.util.Date;

@Entity
@Table(name="Pessoa")
@Inheritance(strategy=InheritanceType.JOINED)
public class Pessoa{
	
	private long idPessoa;
	private String nome;
	private Date dataNascimento;
	private Contato contato;
	private Acesso acesso;
	private Endereco endereco;
	
	@Id
	@GeneratedValue
	@Column(name="idPessoa")
	public long getIdPessoa(){
		return idPessoa;
	}
	
	public void setIdPessoa(long idPessoa){
		this.idPessoa = idPessoa;
	}
	
	@Column(name="nome")
	public String getNome(){
		return nome;
	}
	
	public void setNome(String nome){
		this.nome = nome;
	}
	
	@Column(name="dataNascimento")
	@Temporal(javax.persistence.TemporalType.DATE)
	public Date getDataNascimento(){
		return dataNascimento;
	}
	
	public void setDataNascimento(Date dataNascimento){
		this.dataNascimento = dataNascimento;
	}
	
	@OneToOne(mappedBy="pessoa",cascade=CascadeType.ALL)
	public Contato getContato(){
		return contato;
	}
	
	public void setContato(Contato contato){
		this.contato = contato;
	}
	
	@OneToOne(mappedBy="pessoa",cascade=CascadeType.ALL)
	public Acesso getAcesso(){
		return acesso;
	}
	
	public void setAcesso(Acesso acesso){
		this.acesso = acesso;
	}
	
	@OneToOne(mappedBy="pessoa",cascade=CascadeType.ALL)
	public Endereco getEndereco(){
		return endereco;
	}
	
	public void setEndereco(Endereco endereco){
		this.endereco = endereco;
	}
	
}
